package com.spring.demo1.factory;

import java.lang.annotation.Annotation;

/**
 * AnnotatedElement:获取注解信息
 *
 * @author vhans
 */
public interface MyAnnotatedElement {
    // 返回指定类型的注解，无则返回null
    <A extends Annotation> A getAnnotation(Class<A> annotationClass);

    // 返回此元素上存在的所有注解，包括从父类继承的
    Annotation[] getAnnotation();

    // 如果指定注解在此元素上，则返回true，否则返回false
    boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);

    // 返回直接存在于此元素上的注解
    Annotation[] getDeclareAnnotations();
}
